package com.jzo2o.common.expcetions;

import static com.jzo2o.common.constants.ErrorInfo.Msg.REQUEST_TIME_OUT;
import static java.net.HttpURLConnection.HTTP_CLIENT_TIMEOUT;

/**
 * 请求超时异常类，用于表示请求处理超时的情况
 * 对应HTTP状态码：408（请求超时）
 */
public class RequestTimeoutException extends CommonException {
    /**
     * 使用默认超时消息构造请求超时异常
     */
    public RequestTimeoutException() {
        this(REQUEST_TIME_OUT);
    }
    /**
     * 使用指定消息构造请求超时异常
     * @param message 异常消息
     */
    public RequestTimeoutException(String message) {
        super(HTTP_CLIENT_TIMEOUT, message);
    }
    /**
     * 使用指定原因和消息构造请求超时异常
     * @param throwable 异常原因
     * @param message 异常消息
     */
    public RequestTimeoutException(Throwable throwable, String message) {
        super(throwable, HTTP_CLIENT_TIMEOUT, message);
    }
    /**
     * 使用指定原因和默认超时消息构造请求超时异常
     * @param throwable 异常原因
     */
    public RequestTimeoutException(Throwable throwable) {
        super(throwable, HTTP_CLIENT_TIMEOUT, REQUEST_TIME_OUT);
    }

}
